1995 Are Safe Concurrent Libraries Possible?

Back to Research-Papers
  1. compiler loads variables into a register, then data modification doesn't get written back to the variable as needed and other threads won't see the changes
  2. compiler might reorder instructions for optimization, which may cause reordering at the boundaries of critical sections
  3. instruction substitution (for multiple) can turn atomic operations into non-atomic operations